home *** CD-ROM | disk | FTP | other *** search
/ Mastering Web Site Development / Microsoft Mastering Web Site Development (Microsoft) (1997).iso / Media / SampApps / AdvWorks / AWVB5Demo.EXE / code.asp < prev    next >
Encoding:
Text File  |  1996-11-11  |  4.1 KB  |  155 lines

  1. <SCRIPT LANGUAGE=VBScript RUNAT=Server>
  2.  
  3.  REM *************** NOTICE ****************
  4.  REM * This file may only be used to view  *
  5.  REM * source code of .asp files in the    *
  6.  REM * MTxDemo directory.  If you wish to *
  7.  REM * change the security on this, modify *
  8.  REM * or remove this function.            *
  9.  REM ***************************************
  10.  
  11.  FUNCTION fValidPath (ByVal strPath)
  12.   If InStr(1, strPath, "/MTxDemo/", 1) Then
  13.     fValidPath = 1
  14.   Else
  15.     fValidPath = 0
  16.   End If
  17.  END FUNCTION
  18. </SCRIPT>
  19.  
  20. <SCRIPT LANGUAGE=VBScript RUNAT=Server>
  21.  REM Returns the minimum number greater than 0
  22.  REM If both are 0, returns -1
  23.  FUNCTION fMin (iNum1, iNum2)
  24.   If iNum1 = 0 AND iNum2 = 0 Then
  25.     fMin = -1
  26.   ElseIf iNum2 = 0 Then
  27.     fMin = iNum1
  28.   ElseIf iNum1 = 0 Then
  29.     fMin = iNum2
  30.   ElseIf iNum1 < iNum2 Then
  31.     fMin = iNum1
  32.   Else 
  33.     fMin = iNum2
  34.   End If
  35.  END FUNCTION
  36. </SCRIPT>
  37.  
  38. <SCRIPT LANGUAGE=VBScript RUNAT=Server>
  39.  FUNCTION fCheckLine (ByVal strLine)
  40.  
  41.   fCheckLine = 0
  42.   iTemp = 0
  43.  
  44.   iPos = InStr(strLine, "<" & "%")
  45.   If fMin(iTemp, iPos) = iPos Then
  46.     iTemp = iPos
  47.     fCheckLine = 1
  48.   End If
  49.   
  50.   iPos = InStr(strLine, "%" & ">")
  51.   If fMin(iTemp, iPos) = iPos Then
  52.     iTemp = iPos
  53.     fCheckLine = 2
  54.   End If
  55.  
  56.   iPos = InStr(1, strLine, "<" & "SCRIPT", 1)
  57.   If fMin(iTemp, iPos) = iPos Then
  58.     iTemp = iPos
  59.     fCheckLine = 3
  60.   End If
  61.  
  62.   iPos = InStr(1, strLine, "<" & "/SCRIPT", 1)
  63.   If fMin(iTemp, iPos) = iPos Then
  64.     iTemp = iPos
  65.     fCheckLine = 4
  66.   End If
  67.  
  68.  END FUNCTION
  69. </SCRIPT>
  70.  
  71. <SCRIPT LANGUAGE=VBScript RUNAT=Server>
  72. SUB PrintHTML (ByVal strLine)
  73.     iSpaces = Len(strLine) - Len(LTrim(strLine))
  74.     i = 1
  75.     While Mid(Strline, i, 1) = Chr(9)
  76.         iSpaces = iSpaces + 5
  77.         i = i + 1
  78.     Wend
  79.   If iSpaces > 0 Then
  80.     For i = 1 to iSpaces
  81.       Response.Write(" ")
  82.     Next
  83.   End If
  84.   iPos = InStr(strLine, "<")
  85.   If iPos Then
  86.     Response.Write(Left(strLine, iPos - 1))
  87.     Response.Write("<")
  88.     strLine = Right(strLine, Len(strLine) - iPos)
  89.     Call PrintHTML(strLine)
  90.   Else
  91.     Response.Write(strLine)
  92.   End If
  93.  END SUB
  94. </SCRIPT>
  95.     
  96. <SCRIPT LANGUAGE=VBScript RUNAT=Server>
  97.  SUB PrintLine (ByVal strLine, iFlag)
  98.   Select Case iFlag
  99.     Case 0
  100.       Call PrintHTML(strLine)
  101.     Case 1
  102.       iPos = InStr(strLine, "<" & "%")
  103.       Call PrintHTML(Left(strLine, iPos - 1))
  104.       Response.Write("<FONT COLOR=#ff0000>")
  105.       Response.Write("<%")
  106.       strLine = Right(strLine, Len(strLine) - (iPos + 1))
  107.       Call PrintLine(strLine, fCheckLine(strLine))
  108.     Case 2
  109.       iPos = InStr(strLine, "%" & ">")
  110.       Call PrintHTML(Left(strLine, iPos -1))
  111.       Response.Write("%>")
  112.       Response.Write("</FONT>")
  113.       strLine = Right(strLine, Len(strLine) - (iPos + 1))
  114.       Call PrintLine(strLine, fCheckLine(strLine))
  115.     Case 3
  116.       iPos = InStr(1, strLine, "<" & "SCRIPT", 1)
  117.       Call PrintHTML(Left(strLine, iPos - 1))
  118.       Response.Write("<FONT COLOR=#0000ff>")
  119.       Response.Write("<SCRIPT")
  120.       strLine = Right(strLine, Len(strLine) - (iPos + 6))
  121.       Call PrintLine(strLine, fCheckLine(strLine))
  122.     Case 4
  123.       iPos = InStr(1, strLine, "<" & "/SCRIPT>", 1)
  124.       Call PrintHTML(Left(strLine, iPos - 1))
  125.       Response.Write("</SCRIPT>")
  126.       Response.Write("</FONT>")
  127.       strLine = Right(strLine, Len(strLine) - (iPos + 8))
  128.       Call PrintLine(strLine, fCheckLine(strLine))
  129.     Case Else
  130.       Response.Write("FUNCTION ERROR -- PLEASE CONTACT ADMIN.")
  131.   End Select
  132.  END SUB
  133. </SCRIPT>
  134.  
  135. <HTML>
  136. <HEAD><TITLE>View Source Code</TITLE></HEAD>
  137. <BODY BGCOLOR="#FFFFFF">
  138. <%
  139. strVirtualPath = Request("source")
  140. If fValidPath(strVirtualPath) Then
  141.     strFilename = Server.MapPath(strVirtualPath)
  142.     Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
  143.     Set oInStream = FileObject.OpenTextFile (strFilename, 1, FALSE, TRUE )
  144.     While NOT oInStream.AtEndOfStream
  145.       strOutput = oInStream.ReadLine
  146.       Call PrintLine(strOutput, fCheckLine(strOutput))
  147.       Response.Write("<BR>")
  148.     Wend
  149.   Else
  150.     Response.Write("<H1>View Source Code -- Access Denied</H1>")
  151.   End If  
  152. %>
  153. </BODY>
  154. </HTML>
  155.